﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

namespace indicadores.Models
{
    public class DepartamentoRepositorio
    {
        public IndicadoresContext context = new IndicadoresContext();

        public void Adiciona(Departamento d)
        {
            try
            {
                context.Departamentos.Add(d);
                context.SaveChanges();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Adicionar Departamento");
            }
        }

        public Departamento Busca(int id)
        {
            try
            {
                return context.Set<Departamento>().Find(id);
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Buscar Departamento");
                Departamento d = new Departamento();
                d.Id = 0;
                d.Nome = "Erro com o banco";
                return d;
            }
        }

        public List<Departamento> BuscaTodas()
        {
            try
            {
                var consulta = from e in context.Set<Departamento>()
                               select e;
                return consulta.ToList();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Buscar Todos Departamentos");
                return new List<Departamento>();
            }
        }

        public void Alterar(Departamento d)
        {
            try
            {
                context.Entry(d).State = EntityState.Modified;
                context.SaveChanges();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Alterar Departamento");
            }
        }

        public void Apagar(int id)
        {
            try
            {
                context.Departamentos.Remove(Busca(id));
                context.SaveChanges();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Apagar Departamentos");
            }
        }
    }
}